package me.yiyou.meihua

import android.app.Application
import com.kongzue.dialogx.DialogX
import com.kongzue.dialogx.style.IOSStyle
import com.tencent.bugly.crashreport.CrashReport
import com.tencent.mmkv.MMKV
import me.yiyou.meihua.database.AppDatabase
import me.yiyou.meihua.database.MeiHuaRepository

class MyApplication : Application() {

    // 定义Application的Context对象
    companion object {
        // 使用by Delegates.notNull()进行延迟初始化（委托模式）。这意味着appContext属性在第一次访问之前不会被初始化，直到它被赋值
//        var appContext: Context by Delegates.notNull()
        lateinit var appContext: MyApplication
            private set
    }

    // 初始化数据库
    val database by lazy { AppDatabase.getDatabase(applicationContext) }

    val meiHuaRepository by lazy { MeiHuaRepository(database.meiHuaDao()) }

    private val buglyId = AppConfig.getString("BuglyAppId")  // 替换为你自己的appid,不需要也可以取消bugly的初始化


    override fun onCreate() {
        super.onCreate()
        appContext = this
        DialogX.init(this)
        DialogX.globalStyle = IOSStyle()

        MMKV.initialize(this)

        AppConfig.load(this)

        // 初始化Bugly
        CrashReport.initCrashReport(this, buglyId, true);

    }
}